/**
 * 同步加载html
 */
class LoadHtml {

    /**
     * 同步加载html
     * @param {string} url html的url地址
     * @param {string} containerId div容器id
     */
    static load = function (url, containerId) {
        $.ajax({
            url: url,
            type: 'GET',
            dataType: 'html',
            async: false,
            success: function (data) {
                if ($('#' + containerId).length == 0) {
                    $('body').append('<div id="' + containerId + '"></div>');
                    $('#' + containerId).html(data);
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                if (XMLHttpRequest.responseText) {
                    console.error("网络请求出错：", XMLHttpRequest.responseText);
                } else {
                    console.error("网络请求出错：", XMLHttpRequest);
                }
            }
        });
    }

    /**
     * 同步加载vue文件
     * @param {string} url vue文件的url地址
     * @param {string} containerId div容器id
     */
    static loadVue = function (url, containerId) {
        $.ajax({
            url: url,
            type: 'GET',
            dataType: 'html',
            async: false,
            success: function (data) {
                let regTmpl = /<template[^>]*>([\s\S]*)<\/template[^>]*>/;
                let regStyle = /<style[^>]*>([\s\S]*)<\/style[^>]*>/;
                let template = regTmpl.exec(data)[1];
                let style = regStyle.exec(data)[1];

                if ($('#' + containerId).length == 0) {
                    $('body').append('<div id="' + containerId + '"></div>');
                    $('#' + containerId).html(template + '<style type="text/css">' + style + '</style>');
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                if (XMLHttpRequest.responseText) {
                    console.error("网络请求出错：", XMLHttpRequest.responseText);
                } else {
                    console.error("网络请求出错：", XMLHttpRequest);
                }
            }
        });
    }


}

export { LoadHtml }
